// //该题已经放弃，以下代码无参考意义
// #include<stdio.h>
// #include<math.h>
// int CountDiffer(int y)
// {
//     int differ = 1;
//     int arr[5]={0};//放1时跳过对该位的判断
//     //先算数的位数
//     int w = 1;
//     int i = 0;
//     int tmp = y;
//     for(i=0;i<3;i++)
//     {
//         if(tmp=tmp/10)
//         {
//             w++;
//         }
//     }
//     if(w==1)
//     {
//         return 2;//考虑数字前面的0
//     }
//     tmp = y;
//     int count = 1;//记录现在比较的位是哪个
//     for(i=0;i<w-1;i++)
//     {
//         //低位向高位一个个对比
//         int tmp2 = w-i;//每次都少比一位
//         int g = (int)(tmp/(pow(10,i)))%10;
//         if(arr[i]==1)//说明之前该位判断相同了，不重复判断
//         {
//             count++;
//             continue;
//         }
//         while(tmp2=(tmp2-1))
//         {
//             if(g!=(int)(tmp/(pow(10,count)))%10)
//             {
//                 differ++;
//                 count++;
//                 continue;
//             }
//             arr[count]=1;
//             count++;
//         }
//     }
//     //计算arr中1的个数
//     count = 0;
//     for(i=0;i<5;i++)
//     {
//         if(arr[i]==1)
//         {
//             count++;
//         }
//     }
//     if(w=2)
//     {
//         return differ+1;
//     }
//     if(w=3)
//     {
//         if(count==0)
//         {
//             return differ;
//         }
//         if(arr[2]==1)
//         {
//             return differ;
//         }
//         if(arr[1]==1)
//         {
//             return differ+1;
//         }
//     }
//     if(w=4)
//     {
//         if(count==0)
//         {
//             return differ-3;
//         }
//         if(count==1)
//         {
//             if(arr[3]==1)
//             {
//                 return differ-3;
//             }
//             if(arr[2]==1)
//             {
//                 return differ-2;
//             }
//             if(arr[1]==1)
//             {
//                 return differ-1;
//             }
//         }
//         if(count==2)
//         {
//             if(arr[1]==1)
//             {
//                 return differ-1;
//             }
//             else
//             {
//                 //计算最后两位是否相同
//                 if(y%10==((y/10)%10))
//                 {
//                     return differ;
//                 }
//                 else
//                 {
//                     return differ-2;
//                 }
//             }
//         }
//     }
// }
// int JudgeZero(int y)
// {
//     int w = 1;
//     int i = 0;
//     int tmp = y;
//     for(i=0;i<3;i++)
//     {
//         if(tmp=tmp/10)
//         {
//             w++;
//         }
//     }
//     int flag = 0;
//     for(i=1;i<w;i++)
//     {
//         if((tmp%10)==0)
//         {
//             flag = 1;
//         }
//         tmp = tmp / 10 ;
//     }
//     return flag;
// }
// int JudgeY(int y,int n)
// {
//     int differ = CountDiffer(y);//计算y有几个不同的数字
//     //先考虑出生年份不满4位的情况(有0时differ-1)
//     if(y<1000)
//     {
//         int z = JudgeZero(y);
//         if(z)
//         {
//             differ-1;
//         }
//     }
//     if(differ==n)
//     {
//         return y;
//     }
//     else
//     {
//         JudgeY(y+1,n);
//     }
// }
// int main()
// {
//     int y = 0;
//     int n = 0;
//     scanf("%d %d",&y,&n);
//     int year = JudgeY(y,n);
//     int age = year-y;
//     if(100<=year&&year<1000)
//     {
//         printf("%d 0%d",age,year);
//     }
//     if(10<=year&&year<100)
//     {
//         printf("%d 00%d",age,year);
//     }
//     if(year<10)
//     {
//         printf("%d 000%d",age,year);
//     }
//     if(year>=1000)
//     {
//         printf("%d %d",age,year);
//     }
//     return 0;
// }

#include<stdio.h>
int main()
{
    //出生年份 要求的不同个数
    int birth = 0;
    int diveyear[4] = {0};
    int n = 0;
    scanf("%d %d", &birth, &n);
    int i = 0;
    int j = 0;
    int tmp = 0;
    int differ = 0;//计算结果年份时的年龄
    int count = 1;//至少为1
    int year = birth;//首次设定为出生年
    while(1)
    {
        //判断年份不同数字个数并比较
        //先把年份拆开存到数组里方便比较
        tmp = year;
        count = 1;//count重置
        for (i = 0; i < 4; i++)
        {
            diveyear[i] = tmp % 10;
            tmp /= 10;
        }
        //计算数组内不同数个数，从后往前比较
        for (i = 1; i < 4; i++)//从第二位开始向前比较
        {
            for (j = 0; j < i; j++)
            {
                if(diveyear[j]==diveyear[i])
                //在前面有相同的数字，但是在前面的这一个相同的数字已经是经历过比较的了
                //即在前的这一个相同的数字的计数已计入count，应该跳过
                {
                    break;
                }
            }
            if(i==j)//说明前面所有数字和该位都不同
            {
                count++;
            }
        }
        if(count==n)
        {
            differ = year - birth;
            printf("%d %04d", differ, year);
            break;
        }
        year++;
    }
    return 0;
}